// eslint-disable
import Vue from 'vue'
import Router from 'vue-router'
// import { loadComponent } from '@/utils'
// in development-env not use lazy-loading, because lazy-loading too many pages will cause webpack hot update too slow. so only in production use lazy-loading;
// detail: https://panjiachen.github.io/vue-element-admin-site/#/lazy-loading

Vue.use(Router)

/**
* hidden: true                   if 'hidden:true' will not show in the sidebar(default is false)
* alwaysShow: true               if set true, will always show the root menu, whatever its child routes length
*                                if not set alwaysShow, only more than one route under the children
*                                it will becomes nested mode, otherwise not show the root menu
* redirect: noredirect           if 'redirect:noredirect' will no redirct in the breadcrumb
* name:'router-name'             the name is used by <keep-alive> (must set!!!)
* meta : {
    title: 'title'               the name show in submenu and breadcrumb (recommend set)
    icon: 'svg-name'             the icon show in the sidebar,
  }
**/

export const constantRouterMap = [{
  name: 'login',
  path: '/login',
  redirect: '',
  // component: loadComponent('views/login.vue'),
  component: () => import("@/views/login.vue"),
  chunkName: 'views/login',
  hidden: true
}, {
  name: '404',
  path: '/404',
  redirect: '',
  // component: loadComponent('views/404.vue'),
  component: () => import("@/views/404.vue"),
  chunkName: 'views/404',
  hidden: true
}, {
  path: '*',
  // component: loadComponent('views/404.vue'),
  component: () => import("@/views/404.vue"),
  hidden: true
}, {
  name: 'index',
  path: '/',
  redirect: '/dashboard',
  // component: loadComponent('layout/index.vue'),
  component: () => import("@/layout/index.vue"),
  chunkName: 'views/index',
  children: [{
    name: '首页',
    meta: {
      id: 0,
      pids: [],
      hideMenu: true,
      addTag: false
    },
    path: '/dashboard',
    // component: loadComponent('views/dashboard.vue'),
    component: () => import("@/views/dashboard.vue"),
    chunkName: 'views/dashboard'
  }],
  hidden: true
}]

const originalPush = Router.prototype.push
Router.prototype.push = function push(location, onResolve, onReject) {
  if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject)
  return originalPush.call(this, location).catch(err => err)
}

export default new Router({
  // mode: 'history', //后端支持可开
  scrollBehavior: () => ({
    y: 0
  }),
  routes: constantRouterMap
})
